/*将后端返回的list集合转换成树形结构*/
export function listToTree(list) {
  const map = {} // 用于存储节点 id 与节点的映射关系
  const tree = [] // 树的根节点
  // 首次遍历，将节点 id 与节点进行映射
  list.forEach(node => {
    map[node.id] = { ...node, children: [] }
  })
  // 第二次遍历，构建树结构
  list.forEach(node => {
    if (node.pid) {
      // 如果存在父级节点，则将当前节点添加到父级节点的子节点列表中
      map[node.pid].children.push(map[node.id])
    } else {
      // 否则，将当前节点作为根节点
      tree.push(map[node.id])
    }
  })
  return tree
}


// 将树形结构的数据  传入函数转换成 路由结构
export function generateRouter (data) {
  let newRoutes = data.map(r => {
    let routes = {
      path: r.path,
      name: r.name,
      meta:{title:r.title},
      component: () => import(`@/views/${r.name}/${r.component}`)
    }
    if (r.children) {
      routes.children = generateRouter(r.children)
    }
    return routes
  })
  return newRoutes
}




